-
Notifications
You must be signed in to change notification settings - Fork 729
Smp client fixup #2340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Smp client fixup #2340
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some modems or networks require PAP authentication for successful LCP handshake. Tested on U-blox SARA-R5 with zephyr,gsm-ppp. Signed-off-by: Emil Lindqvist <[email protected]> (cherry picked from commit 79c2faf) (cherry picked from commit d931e88)
U-blox SARA-R4 already exists but the behavior is different, requiring a separate driver instance. For instance, R5 autostarts, so this commit also adds support for skipping power on pulse. Signed-off-by: Emil Lindqvist <[email protected]> (cherry picked from commit 1cd7c55) (cherry picked from commit 26d9f10)
Added missing command and message handling for use existing modem cmux for DCE role. DCE CMUX connection can be now initialized from DTE side. Signed-off-by: Juha Heiskanen <[email protected]> (cherry picked from commit 093efc4) (cherry picked from commit 256ffa9)
Added possibility for link 2 modem mock instance for validating P2P communication without any data stubbing. Signed-off-by: Juha Heiskanen <[email protected]> (cherry picked from commit 6943cd4) (cherry picked from commit 8dcf22f)
Added unite test for for validate modem CMUX DTE & DCE role communication together. Signed-off-by: Juha Heiskanen <[email protected]> (cherry picked from commit 34d4e50) (cherry picked from commit 018a26c)
Adds two APIs which allow for configuring the cellular network configuration of a cellular network device. like a cellular modem. The first allows for configuring which access technology to use, and optionally, which bands to use. The second allows for getting all supported access technologies are supported, and which bands for each tech are supported. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit ad01169) (cherry picked from commit d93c2ba)
Implement modem info pulling using the init and periodic chat scripts Signed-off-by: Lucas Denefle <[email protected]> (cherry picked from commit d1ba79a) (cherry picked from commit 57304f0)
Fixed Kconfig to remove dependency between modem_socket and modem_context, the two do not depend on each other and should be possible to use independently Signed-off-by: Alessio Lei <[email protected]> (cherry picked from commit 733b81d) (cherry picked from commit e4c7fef)
Add Lucas Denefle to copyright of the cellular API. Signed-off-by: Lucas Denefle <[email protected]> (cherry picked from commit a5e5c1d) (cherry picked from commit a3dd7a7)
In cases where the data is bigger than 127 bytes, the first bit of the second byte of the data length field used to always be set. This is wrong as according to the 3GPP 27.010 spec only the first bit of the first byte is the EA bit; all the others denote the data length. Signed-off-by: Tomi Fontanilles <[email protected]> (cherry picked from commit 6564e8b) (cherry picked from commit 58de2e3)
…e driver model The current cellular API header is not written to conform with the device driver model. This commit fixes that. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 6f55309) (cherry picked from commit 361f49f)
…ular API Move the implementations of the cellular API in modem_cellular.c to an cellular_driver_structure, and implement this API structure withing the device drivers. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit f949103) (cherry picked from commit d07ec77)
…ementation The modem_cellular.c driver now uses a common script to get signal strenght, which is run on demand. This is more efficient than polling it, and simpler since every modem doesn't have to define their own variant of the script. Additionally, the CSQ handler now stores the "raw" rssi value returned from AT+CSQ to be parsed by the cellular_modem_get_signal implementation. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 572c5e6) (cherry picked from commit e6ded94)
…dler The QCCID handler is Quectel specific and as such may not be part of the modem cellular driver which only supports commands defined in 3GPP TS 27.007 Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 1ee0926) (cherry picked from commit 8fdf487)
The chat module contains an array of three lists of matches, one of which are static, two of which are contained within the currently running script. The current match, which is an object stored in one of the three lists, is stored in its own pointer in the chat module context. A memory error occurs when the script is stopped, while the chat module is using one of the matches stored withing the script. This commit clears the match pointer when the script is stopped if the match is stored within the script. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 3ebe814) (cherry picked from commit dc270c2)
The CMUX resync mechanism can get stuck between states MODEM_CMUX_RECEIVE_STATE_RESYNC_0 and MODEM_CMUX_RECEIVE_STATE_RESYNC_1 if the resync flags, which are sent only once in state MODEM_CMUX_RECEIVE_STATE_SOF, are not responded to, or the response is lost. This patch ensures resync flags are sent from states MODEM_CMUX_RECEIVE_STATE_SOF, MODEM_CMUX_RECEIVE_STATE_RESYNC_1 and MODEM_CMUX_RECEIVE_STATE_RESYNC_2 if its determined that the resync flags are not being responded to. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 48fa603) (cherry picked from commit 47b99cf)
DLCI receive buffer may overrun if data is not processed fast enough. This error was not reported before this patch, resulting in unexplained missing bytes. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit b3971d0) (cherry picked from commit dfe7414)
Some modems don't start sending resync flags as described in 3G TS 27.010 V2.0.0 5.2.5, which results in the CMUX being stuck in resync mode for said modems. This patch simplifies the resync mechanism to simply drop invalid frames, and wait for atleast two consequtive frame flags (stop+start). Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 3debfc8) (cherry picked from commit 5c15715)
Update the unit test to expect the new simplified resync behavior, and validate that new resync is working. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 7d7f7aa) (cherry picked from commit 242758d)
Add transmit idle event to modem_pipe_event enum. This will allow modules to await transmit idle before trying to transmit more data, instead of blindly calling modem_pipe_transmit in a loop until all data has been accepted. This will reduce the time spent trying to transmit data while the backend is blocked. Similarly to the RECEIVE_READY event, backends will call modem_pipe_notify_transmit_idle() to indicate that transmit is idle, and the TRANSMIT_IDLE event will be reinvoked when the modem pipe is attached to synchronize the state of the pipe with the user of it. Additionally, the TRANSMIT_IDLE event is also invoked when the modem is opened to further help synchronization with the user of the pipe. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 516af3c) (cherry picked from commit 27c6173)
Make async and interrupt driven UART backends notify transmit idle when transmit is idle. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 8c6a9ee) (cherry picked from commit 86431c2)
Implement transmit idle notification for TTY backend. Since TTY has an "infinite" transmit buffer, we invoke transmit idle immediately after writing the data to the TTY file. The test suite for the TTY backend has been updated to match the new behavior. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 4d99c69) (cherry picked from commit 7fb5794)
Add test suite for the modem_pipe module. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 9176e5c) (cherry picked from commit 49b54cc)
…to save ROM This optimization aggregates frame headers before adding to the ring buffer and computes the FCS of the frame header in one operation. This approach improves execution efficiency and reduces memory footprint. This code adjustment aligns with the changes proposed in zephyrproject-rtos/zephyr#67062. Signed-off-by: Pisit Sawangvonganan <[email protected]> (cherry picked from commit 1270bce) (cherry picked from commit 97a72e7)
…is sent This PR makes the modem_chat wait until a chat script chat request has been sent before accepting responses to said request. This helps ensure that an unsolicitet response is not mistaken for a response to a request, which is especially problematic if the chat script chat is using an any match. For example, start chat script sending AT+CGMI, expecting the modem name as a response followed by OK > start script, waiting for response immediately > start sending "AT+CGMI" > receive "+CEREG 1,0" while sending > script accepts "+CEREG 1,0" as the response to "AT+CGMI" > "AT+CGMI" sent > receive "QUECTEL BG95" > receive "OK" script handler got "+CEREG 1,0" instead of "QUECTEL BG95" After this PR: > start script > start sending AT+CGMI > receive "+CEREG 1,0" while sending > "AT+CGMI" sent > start waiting for response > receive "QUECTEL BG95" > script accepts "QUECTEL BG95" as response to "AT+CGMI" > receive "OK" Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 7c9f287) (cherry picked from commit c183d3e)
Implements TRANSMIT_IDLE event notification for mock modem_pipe. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 325bc95) (cherry picked from commit 05222f3)
This commit implements parsing of the CESQ extended signal quality AT command, extracting RSRP and RSRQ which is relevant for LTE connections. It's used in the U-blox SARA-R5 modem instance. Furthermore, the IMEI, IMSI is extracted in the same modem. Signed-off-by: Emil Lindqvist <[email protected]> (cherry picked from commit 342e10b) (cherry picked from commit 30e3637)
Implement transmit idle event both for transmitting data to the bus, and for the individual DLCI channels. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit c114627) (cherry picked from commit 54f90a7)
…suite Use transmit idle event to synchronize with data transmitted through DLCI pipes to test TRANSMIT_IDLE implementation. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 358f1ff) (cherry picked from commit 914e33b)
… to UTC Change the synchronization of RMC and GGA NMEA messages from a timeout to matching their UTC timestamps. Signed-off-by: Bjarki Arge Andreasen <[email protected]> (cherry picked from commit 1bc8490) (cherry picked from commit 9a1cd2c)
Contributor
|
none Note: This comment is automatically posted and updated by the Contribs GitHub Action. |
Contributor
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.